package com.zrrd.yt.product.client;

import com.zrrd.yt.common.result.Result;
import com.zrrd.yt.model.product.*;
import com.zrrd.yt.product.client.impl.ProductFeignClientImpl;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author HongyueYang
 */
@FeignClient(value = "service-product",fallback = ProductFeignClientImpl.class)
public interface ProductFeignClient {

    //获取sku基本信息（包含图片）
    @GetMapping("/api/product/inner/getSkuInfo/{skuId}")
    public SkuInfo getSkuInfo(@PathVariable("skuId") Long skuId);

    //获取sku分类信息（包含三个分类）
    @GetMapping("/api/product/inner/getCategoryView/{category3Id}")
    public BaseCategoryView getCategoryView(@PathVariable("category3Id") Long category3Id);


    //获取sku价格
    @GetMapping("/api/product/inner/getSkuPrice/{skuId}")
    public BigDecimal getSkuPrice(@PathVariable("skuId") Long skuId);

    //根据spuId和skuId查询spu的销售属性以及属性值并且标记sku选择的属性值
    @GetMapping("/api/product/inner/getSpuSaleAttrListBySku/{spuId}/{skuId}")
    public List<SpuSaleAttr> getSpuSaleAttrListBySku(@PathVariable("spuId") Long spuId,
                                                       @PathVariable("skuId") Long skuId);

    //根据spuId查询sku销售属性值信息
    @GetMapping("/api/product/inner/selectSkuAttrValueBySpu/{spuId}")
    public Map selectSkuAttrValueBySpu(@PathVariable("spuId") Long spuId);


    //获取全部分类信息（JSON层级）
    @GetMapping("/api/product/inner/getBaseCategoryList")
    public Result getBaseCategoryList();

    //根据品牌id查询品牌
    @GetMapping("/api/product/inner/getTrademark/{tmId}")
    public BaseTrademark getTrademark(@PathVariable("tmId") Long tmId);

    //根据skuId查询平台属性值以及属性值
    @GetMapping("/api/product/inner/getBaseAttrInfo/{skuId}")
    public List<BaseAttrInfo> getBaseAttrInfo(@PathVariable("skuId") Long skuId);
    }


